package com.igame.Service;


import com.igame.common.Result;
import com.igame.dto.*;
import com.igame.entity.PasswordSecurity;
import com.igame.entity.User;
import com.igame.vo.UserVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Set;

public interface UserService  {
    Result Register(UserDto userDto);

    Result<User> login(UserDto userDto);

    Result<String>getAvatarByUserName(String username);

    Result<UserVo> getUpUser(String username);

    Result addFollow(FollowDto followDto);

    Integer getIdByName(String userName);

    Result<Set<String>> getUserNameById(List<Integer> idList);
        Result<UserVo> getUserById(Integer id);

    AreaResponse getAllArea();

    Result update( Integer id, String username, String provinceName, String cityName, String districtName, String address, MultipartFile file);

    Result verifyPassword(UserDto userDto);

    Result addPasswordSecurity(SecurityQuestionsRequestDTO request);

    Result<List<PasswordSecurity>> userHavePds(Integer userId);

    Result changePassword(ChangePasswordDto changePasswordDto);


//    发送验证码到前端
    Result<String> sendCode(String email);

//    忘记密码修改方法
    Result forgotPassword(ChangePasswordDto changePasswordDto);
//忘记密码根据用户名修改密码
    Result<List<PasswordSecurity>> getPasswordSecurity(String username);


}
